/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package wasolicitudesfiec.consultas;
import java.sql.*;
import entidad.Rol;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;
/**
 *
 * @author kabad
 */
public class ConsultasRol{
private Connection con;

public Rol nuevoRol(String descripcion, String rol) throws SQLException{
Rol reg=new Rol();

PreparedStatement proc=con.prepareStatement(
"call nuevoRol(?,?) ");
proc.setString(1, descripcion);
proc.setString(2, rol);
ResultSet rs=proc.executeQuery();
if (rs.next()) {
reg.setDescripcion(rs.getString(1));
reg.setIdRol(rs.getInt(2));
reg.setRol(rs.getString(3));
}else reg=null;
return reg;


}

public Rol HLnuevoRol(Rol val) throws SQLException{
return nuevoRol(val.getDescripcion(), val.getRol());
}

public Rol leerRol(int idRol) throws SQLException{
Rol reg=new Rol();

PreparedStatement proc=con.prepareStatement(
"call leerRol(?) ");
proc.setInt(1, idRol);
ResultSet rs=proc.executeQuery();
if (rs.next()) {
reg.setDescripcion(rs.getString(1));
reg.setIdRol(rs.getInt(2));
reg.setRol(rs.getString(3));
}else reg=null;
return reg;


}

public Rol HLleerRol(Rol val) throws SQLException{
return leerRol(val.getIdRol());
}

public Vector<Rol> leerVariosRol() throws SQLException{
Vector<Rol> datos=new Vector<Rol>();
Rol reg;

PreparedStatement proc=con.prepareStatement(
"call leerVariosRol() ");
ResultSet rs=proc.executeQuery();
while (rs.next()) {
reg = new Rol();
reg.setDescripcion(rs.getString(1));
reg.setIdRol(rs.getInt(2));
reg.setRol(rs.getString(3));
datos.add(reg);
}//end while
return datos;


}

public Vector<Rol> HLleerVariosRol(Rol val) throws SQLException{
return leerVariosRol();
}

public boolean modificarRol(String descripcion, int idRol, String rol) throws SQLException{
boolean exitoOperacion = true;

PreparedStatement proc=con.prepareStatement(
"call modificarRol(?,?,?) ");
proc.setString(1, descripcion);
proc.setInt(2, idRol);
proc.setString(3, rol);
proc.execute();
return exitoOperacion;


}

public boolean HLmodificarRol(Rol val) throws SQLException{
return modificarRol(val.getDescripcion(), val.getIdRol(), val.getRol());
}

public boolean eliminarRol(int idRol) throws SQLException{
boolean exitoOperacion = true;

PreparedStatement proc=con.prepareStatement(
"call eliminarRol(?) ");
proc.setInt(1, idRol);
proc.execute();
return exitoOperacion;
}

public boolean HLeliminarRol(Rol val) throws SQLException{
return eliminarRol(val.getIdRol());
}

public void setConexion(Connection con) {
this.con=con;
}

public Rol leerRolPorNombre(String nombre, int idRol) throws SQLException{
Rol reg=new Rol();
PreparedStatement proc=con.prepareStatement(
"call leerRolPorNombre(?,?) ");
proc.setString(1, nombre);
proc.setInt(2, idRol);
ResultSet rs=proc.executeQuery();
if (rs.next()) {
reg.setDescripcion(rs.getString(1));
reg.setIdRol(rs.getInt(2));
reg.setRol(rs.getString(3));
}else reg=null;
return reg;
}

}// FIN CLASE: ConsultasRol